option('xorg', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable Xorg X Server')
option('xephyr', type: 'boolean', value: false,
       description: 'Enable Xephyr nested X server')
option('xfbdev', type: 'boolean', value: false,
       description: 'Enable the kdrive framebuffer device server')
option('glamor', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable glamor (default yes for Xorg builds)')
option('xnest', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable Xnest nested X server')
option('xvfb', type: 'boolean', value: true,
       description: 'Enable Xvfb X server')
option('xwin', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable XWin X server')
option('xquartz', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable Xquartz X server')

option('kdrive_kbd', type: 'boolean', value: true,
       description: 'Build kbd driver for kdrive')
option('kdrive_mouse', type: 'boolean', value: true,
       description: 'Build mouse driver for kdrive')
option('kdrive_evdev', type: 'boolean', value: true,
       description: 'Build evdev driver for kdrive')
option('kdrive_tslib', type: 'boolean', value: false,
       description: 'Build kdrive tslib touchscreen support')


option('builder_addr', type: 'string', description: 'Builder address', value: 'xlibre@freelists.org')
option('builder_string', type: 'string', description: 'Additional builder string')

option('log_dir', type: 'string')
option('module_dir', type: 'string', value: 'xorg/modules',
       description: 'X.Org modules directory (absolute or relative to the directory specified by the libdir option)')
option('default_font_path', type: 'string')
option('fontrootdir', type: 'string',
        description: 'Root directory for legacy fonts. Default: from font-utils.pc or $datadir/fonts/X11')
option('serverconfigdir', type: 'string',
        description: 'Miscellaneous server configuration files path. Default: $libdir/xorg')

option('glx', type: 'boolean', value: true)
option('xdmcp', type: 'boolean', value: true)
option('xdm-auth-1', type: 'boolean', value: true)
option('ipv6', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto')
option('input_thread', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto')

option('xkb_dir', type: 'string')
option('xkb_output_dir', type: 'string')
option('xkb_bin_dir', type: 'string')
option('xkb_default_rules', type: 'string', value: 'evdev')
option('xkb_default_model', type: 'string', value: 'pc105')
option('xkb_default_layout', type: 'string', value: 'us')
option('xkb_default_variant', type: 'string')
option('xkb_default_options', type: 'string')

option('fallback_input_driver', type: 'string', value: 'auto')

option('vendor_name', type: 'string', value: 'XLibre')
option('vendor_name_short', type: 'string', value: 'XLibre')
option('vendor_web', type: 'string', value: 'https://github.com/X11Libre/xserver')

option('dtrace', type: 'boolean', value: false,
       description: 'Enable dtrace hooks')

option('listen_tcp', type: 'boolean', value: false,
       description: 'Listen on TCP by default')
option('listen_unix', type: 'boolean', value: true,
       description: 'Listen on Unix by default')
option('listen_local', type: 'boolean', value: true,
       description: 'Listen on local by default')

option('int10', type: 'combo', choices: ['stub', 'x86emu', 'vm86', 'auto', 'false'],
       value: 'auto',
       description: 'Xorg int10 backend (default: usually x86emu)')
option('suid_wrapper', type: 'boolean', value: false,
       description: 'SUID wrapper for legacy driver support')
option('pciaccess', type: 'boolean', value: true,
       description: 'Xorg pciaccess support')
option('udev', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable udev hotplugging support')
option('udev_kms', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Enable udev kms support')
option('hal', type: 'combo', choices: ['true', 'false', 'auto'], value: 'false',
       description: 'Enable HAL integration')
option('systemd_notify', type: 'combo', choices: ['true', 'false', 'auto'], value: 'false',
       description: 'Enable systemd-notify support')
option('systemd_logind', type: 'combo', choices: ['true', 'false', 'auto'], value: 'false',
       description: 'Enable systemd-logind integration')
option('vgahw', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'Xorg VGA access module')
option('dpms', type: 'boolean', value: true,
       description: 'Xorg DPMS extension')
option('xf86bigfont', type: 'boolean', value: false,
       description: 'XF86 Big Font extension')
option('screensaver', type: 'boolean', value: true,
       description: 'ScreenSaver extension')
option('xres', type: 'boolean', value: true,
       description: 'XRes extension')
option('xselinux', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'XSELINUX extension')
option('namespace', type: 'boolean', value: true,
       description: 'Container/namespace extension')
option('xinerama', type: 'boolean', value: true,
       description: 'Xinerama extension')
option('xcsecurity', type: 'boolean', value: false,
       description: 'Security extension')
option('xv', type: 'boolean', value: true,
       description: 'Xv extension')
option('xvmc', type: 'boolean', value: true,
       description: 'XvMC extension')
option('dga', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'DGA extension')
option('linux_apm', type: 'boolean', value: true,
       description: 'APM support on Linux')
option('linux_acpi', type: 'boolean', value: true,
       description: 'ACPI support on Linux')
option('mitshm', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'SHM extension')
option('agp', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
       description: 'AGP support')
option('sha1', type: 'combo', choices: ['libc', 'CommonCrypto', 'CryptoAPI', 'libmd', 'libsha1', 'libnettle', 'libgcrypt', 'libcrypto', 'auto'], value: 'auto',
       description: 'SHA1 implementation')
option('xf86-input-inputtest', type: 'boolean', value: true,
       description: 'Test input driver support on Xorg')
option('tests', type: 'boolean', value: true,
       description: 'Build tests for the X server on platforms that support it')

option('dri1', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI1 extension (default: auto)')
option('dri2', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI2 extension (default: auto)')
option('dri3', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto', description: 'Build DRI3 extension (default: auto)')
option('drm', type: 'boolean', value: true,
        description: 'Build Xorg with libdrm support')

option('apple-applications-dir', type: 'string', value: '/Applications/Utilities',
        description: 'Applications directory')
option('apple-application-name', type: 'string', value: 'X11',
        description: 'Application name')
option('bundle-id-prefix', type: 'string', value: 'org.x',
        description: 'RDNS prefix for bundle identifier')
option('bundle-version', type: 'string', value: 'auto',
        description: 'The CFBundleVersion for the application bundle')
option('bundle-version-string', type: 'string', value: 'auto',
        description: 'The CFBundleShortVersionString for the application bundle')
option('sparkle-feed-url', type: 'string',
        description: 'Feed URL for autoupdating with the Sparkle Framework (default: disabled)')
option('sparkle-public-edkey', type: 'string',
        description: 'Public EdDSA key for verifying updates from the Sparkle feed (default: disabled)')
option('xpbproxy', type: 'boolean', value: false,
        description: 'Build a standalone X pasteboard proxy')

option('libunwind', type: 'boolean', value: false,
        description: 'Use libunwind for backtrace reporting')

option('docs', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
        description: 'Build documentation')
option('devel-docs', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
        description: 'Build development documentation')
option('docs-pdf', type: 'combo', choices: ['true', 'false', 'auto'], value: 'auto',
        description: 'Whether to build PDF version of documentation. Setting is ignored if documentation is not built.')

option('legacy_nvidia_padding', type: 'boolean', value: false,
        description: 'EXPERT ONLY: Add a padding to ScreenRec to match an older ABI for legacy NVidia drivers')

# testsuite fine tuning - some things might not run everywhere
option('test_rendercheck_triangles', type: 'boolean', value: false,
       description: 'testsuite: run rendercheck triangles tests (might fail on Xephyr)')
option('test_xephyr_gles', type: 'boolean', value: true,
       description: 'testsuite: run gles2/gles3 tests on Xephyr (might fail w/o DRI)')
